import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import {i18n} from './i18n/index'; 
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/en' // element-UI英文
import { translate as $t } from "./i18n/index.js" 
Vue.prototype.$t = $t
i18n.locale = localStorage.getItem('locale') || 'zh';
  Vue.prototype.$IP = 'file:///' // 本地版本： 'file:///'  |  服务器版本：'http://'+window.location.hostname+':23412'
  // Vue.prototype.$IP = 'http://'+window.location.hostname+':23412' // 本地版本： 'file:///'  |  服务器版本：'http://'+window.location.hostname+':23412'

// import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n
// import './assets/font_3176471_l5slht47o/iconfont.css'

import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';

Vue.use(Antd);

import PrintS from '@/utils/print'
Vue.use(PrintS);

import { VueCropper } from "vue-cropper";

Vue.use(VueCropper)

import x2js from 'x2js' //xml数据处理插件
Vue.prototype.$x2js = new x2js() //全局方法挂载

import '@/styles/index.scss' // global css

import './utils/emjoydata.js'
import './utils/emjoymethod'
import './styles/emjoy.css'

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer)
Viewer.setDefaults({
  Options: { 'inline': true, 'button': true, 'navbar': true, 'title': true, 'toolbar': true, 'tooltip': true, 'movable': true, 'zoomable': true, 'rotatable': true, 'scalable': true, 'transition': true, 'fullscreen': true, 'keyboard': true, 'url': 'data-source' }
})

import infiniteScroll from 'vue-infinite-scroll'
Vue.use(infiniteScroll)


import VueScroll from 'vue-scroll';
Vue.use(VueScroll);

// Vue.use(VideoPlayer)

import Print from 'vue-print-nb'
Vue.use(Print);

Vue.use(ElementUI, { locale })
// ------------------------------------VueLazyload start------------------------------------------
import VueLazyload from 'vue-lazyload';

Vue.use(VueLazyload, {
  preLoad: 1.3,
  error: '加载失败时显示的图片地址',
  loading: '加载中显示的图片地址',
  attempt: 1,
});

// 全局注册自定义指令lazy-img
Vue.directive('lazy-img', {
  inserted(el, binding) {
    const options = {
      rootMargin: '50px 0px', // 可见区域的阈值，可以根据需要调整
      threshold: 0.01, // 监测元素可见度的阈值，值为0-1，可以根据需要调整
    };

    const observer = new IntersectionObserver((entries) => {
      entries.forEach((entry) => {
        if (entry.isIntersecting) {
          const imgElement = entry.target;
          imgElement.src = binding.value;
          observer.unobserve(imgElement);
        }
      });
    }, options);

    observer.observe(el);
  },
});


// ----------------------------------VueLazyload end ---------------------------------------------

import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)

export const bus = new Vue();

// vuesax ui
// npm install vuesax@next
// import Vuesax from 'vuesax'
// import 'vuesax/dist/vuesax.css' //Vuesax styles
// Vue.use(Vuesax, {
//   // options here
// })

// 引入高德api VueMap 不支持双向引入
import VueAMap from 'vue-amap';
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
  key: '9205b90a13acb8e3cceca2e5d1e8c09c',
  // 插件集合，用到什么插件就使用什么插件
  plugin: [],
  v: '2.0', // 高德sdk版本，最新的sdk已经出到了2.0
})


// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

// 屏幕设配比例运用 postcss-pxtorem rem 适配屏幕
// https://zhuanlan.zhihu.com/p/483059929

// import { detectZoom } from '@/utils/detectZoom.js';

// const m = detectZoom(window.screen.width * window.devicePixelRatio);
// // console.log(m)
// // 4k 3840 宽
// if (window.screen.width * window.devicePixelRatio >=3440) {
//   switch (m) {
//     // 4k屏时屏幕缩放比为100%
//     case 100:
//       document.body.style.zoom = 100 / 80;
//       break;
//       // 4k屏时屏幕缩放比为125%
//     case 125:
//       document.body.style.zoom =100/65;
//       document.body.style.height='auto';
//       break;
//       // 4k屏时屏幕缩放比为150%
//     case 150:
//       document.body.style.zoom = 100 / 75;
//       break;
//       // 4k屏时屏幕缩放比为175%
//     case 175:
//       document.body.style.zoom = 100 / (Number(m) / 2.3);
//       break;
//       // 4k屏时屏幕缩放比为200%
//     case 200:
//       document.body.style.zoom = 100 / (Number(m) / 2.6);
//       break;
//       // 4k屏时屏幕缩放比为225%
//     case 225:
//       document.body.style.zoom = 100 / (Number(m) / 2.8);
//       break;

//     default:
//       break;
//   }
// // document.body.style.zoom = 100 / (Number(m)/2);
// }else if(window.screen.width * window.devicePixelRatio > 2561 && window.screen.width * window.devicePixelRatio < 2881){
//   console.log(123123)
//   switch (m) {
//     // 4k屏时屏幕缩放比为100%
//     case 100:
//       document.body.style.zoom =1.2;
//       break;
//       // 4k屏时屏幕缩放比为125%
//     case 125:
//       document.body.style.zoom =1.6;
//       document.body.style.height='auto';
//       break;
//       // 4k屏时屏幕缩放比为150%
//     case 150:
//       document.body.style.zoom =1.6;
//       break;
//       // 4k屏时屏幕缩放比为175%
//     case 175:
//       document.body.style.zoom = 1.6;
//       break;
//       // 4k屏时屏幕缩放比为200%
//     case 200:
//       document.body.style.zoom = 1.55;
//       break;
//       // 4k屏时屏幕缩放比为225%
//     case 225:
//       document.body.style.zoom = 1.6;
//       break;

//     default:
//       break;
//   }
// }
// else if (window.screen.width * window.devicePixelRatio > 2561 && window.screen.width * window.devicePixelRatio < 3440) {
//     // document.body.style.zoom = 100 / (Number(m) / 1)
//     switch (m) {
//     // 1k屏时屏幕缩放比为100%
//     case 100:
//       document.body.style.zoom = 1.05;
//       break;
//       // 1k屏时屏幕缩放比为125%
//     case 125:
//       document.body.style.zoom = 1;
//       break;
//       // 1k屏时屏幕缩放比为150%
//     case 150:
//       document.body.style.zoom = .9;
//       break;
//       // 1k屏时屏幕缩放比为175%
//     case 175:
//       document.body.style.zoom = .9;
//       break;
//       // 1k屏时屏幕缩放比为200%
//     case 200:
//       document.body.style.zoom = 1.3;
//       break;
//       // 1k屏时屏幕缩放比为225%
//     case 225:
//       document.body.style.zoom =1.3;
//       break;
//     default:
//       break;
//   }
// }else if(window.screen.width * window.devicePixelRatio <= 2561 && window.screen.width * window.devicePixelRatio > 1931){
//   // console.log(m)
//   switch (m) {
//     // 2k屏时屏幕缩放比为100%
//     case 100:
//       document.body.style.zoom = 100 / (Number(m) / 1);
//       break;
//       // 2k屏时屏幕缩放比为125%
//     case 125:
//       document.body.style.zoom = 1.3;
//       break;
//       // 2k屏时屏幕缩放比为150%
//     case 150:
//       document.body.style.zoom =1.3;
//       // document.body.style.width = '100%'
//       break;
//       // 2k屏时屏幕缩放比为175%
//     case 175:
//       document.body.style.zoom = 1.3;
//       break;
//       // 2k屏时屏幕缩放比为225%
//     case 225:
//       document.body.style.zoom = 100 / (Number(m) / 2.15);
//       break;
//     default:
//       break;
//   }
// }
// else if(window.screen.width * window.devicePixelRatio <= 1930){
//   // document.body.style.zoom = 100 / Number(m);
//   switch (m) {
//     // 2k屏时屏幕缩放比为100%
//     case 100:
//       document.body.style.zoom = 100 / (Number(m) / 1);
//       break;
//       // 2k屏时屏幕缩放比为125%
//     case 125:
//       document.body.style.zoom = 100 / (Number(m) / 1.25);
//       break;
//       // 2k屏时屏幕缩放比为150%
//     case 150:
//       document.body.style.zoom = 0.9;
//       // document.body.style.width = '100%'
//       break;
//       // 2k屏时屏幕缩放比为175%
//     case 175:
//       document.body.style.zoom = .8;
//       break;
//       // 2k屏时屏幕缩放比为225%
//     case 225:
//       document.body.style.zoom = 100 / (Number(m) / 2.15);
//       break;
//     default:
//       break;
//   }
// }else{
//   // document.body.style.zoom = 100 / (Number(m)/1.55);
//   // switch (m) {
//   //   // 2k屏时屏幕缩放比为100%
//   //   case 100:
//   //     document.body.style.zoom = 100 / (Number(m) / 1.2);
//   //     break;
//   //     // 2k屏时屏幕缩放比为125%
//   //   case 125:
//   //     document.body.style.zoom = 100 / (Number(m) / 1.25);
//   //     break;
//   //     // 2k屏时屏幕缩放比为150%
//   //   case 150:
//   //     document.body.style.zoom = 100 / (Number(m) / 1.6);
//   //     break;
//   //     // 2k屏时屏幕缩放比为175%
//   //   case 157:
//   //     document.body.style.zoom = 100 / (Number(m) / 1.4);
//   //     break;
//   //     // 2k屏时屏幕缩放比为200%
//   //   case 175:
//   //     document.body.style.zoom = 100 / (Number(m) / 2);
//   //     break;
//   //     // 2k屏时屏幕缩放比为225%
//   //   case 225:
//   //     document.body.style.zoom = 100 / (Number(m) / 2.25);
//   //     break;
//   //   default:
//   //     break;
//   // }
// }

// if (window.screen.width * window.devicePixelRatio >= 3840) {
//   document.body.style.zoom = 100 / (Number(m) / 2)
// } else if (window.screen.width * window.devicePixelRatio >= 2560 && window.screen.width * window.devicePixelRatio <= 3840) {
//   document.body.style.zoom = 100 / (Number(m) / 1.33)
// } else {
//   document.body.style.zoom = 100 / Number(m)
// }

Vue.config.productionTip = false

new Vue({
  el: '#app',
  i18n,  
  router,
  store,
  mounted() {
    window.isfitVue = this;
},
  render: h => h(App)
})
